7 #ifndef __MSP430WARE_USCI_B_I2C_H__
8 #define __MSP430WARE_USCI_B_I2C_H__
12 #ifdef __MSP430_HAS_USCI_Bx__
31 typedef struct USCI_B_I2C_initMasterParam {
36 uint8_t selectClockSource;
44 } USCI_B_I2C_initMasterParam;
53 #define USCI_B_I2C_CLOCKSOURCE_ACLK UCSSEL__ACLK
54 #define USCI_B_I2C_CLOCKSOURCE_SMCLK UCSSEL__SMCLK
62 #define USCI_B_I2C_SET_DATA_RATE_400KBPS 400000
63 #define USCI_B_I2C_SET_DATA_RATE_100KBPS 100000
71 #define USCI_B_I2C_TRANSMIT_MODE UCTR
72 #define USCI_B_I2C_RECEIVE_MODE 0x00
82 #define USCI_B_I2C_STOP_INTERRUPT UCSTPIE
83 #define USCI_B_I2C_START_INTERRUPT UCSTTIE
84 #define USCI_B_I2C_RECEIVE_INTERRUPT UCRXIE
85 #define USCI_B_I2C_TRANSMIT_INTERRUPT UCTXIE
86 #define USCI_B_I2C_NAK_INTERRUPT UCNACKIE
87 #define USCI_B_I2C_ARBITRATIONLOST_INTERRUPT UCALIE
96 #define USCI_B_I2C_BUS_BUSY UCBBUSY
97 #define USCI_B_I2C_BUS_NOT_BUSY 0x00
105 #define USCI_B_I2C_SENDING_START UCTXSTT
106 #define USCI_B_I2C_START_SEND_COMPLETE 0x00
114 #define USCI_B_I2C_SENDING_STOP UCTXSTP
115 #define USCI_B_I2C_STOP_SEND_COMPLETE 0x00
145 extern void USCI_B_I2C_initMaster(uint16_t baseAddress,
146 USCI_B_I2C_initMasterParam *
param);
166 extern void USCI_B_I2C_initSlave(uint16_t baseAddress,
167 uint8_t slaveAddress);
182 extern void USCI_B_I2C_enable(uint16_t baseAddress);
197 extern void USCI_B_I2C_disable(uint16_t baseAddress);
215 extern void USCI_B_I2C_setSlaveAddress(uint16_t baseAddress,
216 uint8_t slaveAddress);
235 extern void USCI_B_I2C_setMode(uint16_t baseAddress,
253 extern void USCI_B_I2C_slavePutData(uint16_t baseAddress,
268 extern uint8_t USCI_B_I2C_slaveGetData(uint16_t baseAddress);
288 extern uint8_t USCI_B_I2C_isBusBusy(uint16_t baseAddress);
309 extern uint8_t USCI_B_I2C_isBusy(uint16_t baseAddress);
327 extern uint8_t USCI_B_I2C_masterIsStopSent(uint16_t baseAddress);
345 extern uint8_t USCI_B_I2C_masterIsStartSent(uint16_t baseAddress);
358 extern void USCI_B_I2C_masterSendStart(uint16_t baseAddress);
384 extern void USCI_B_I2C_enableInterrupt(uint16_t baseAddress,
411 extern void USCI_B_I2C_disableInterrupt(uint16_t baseAddress,
438 extern void USCI_B_I2C_clearInterrupt(uint16_t baseAddress,
471 extern uint8_t USCI_B_I2C_getInterruptStatus(uint16_t baseAddress,
491 extern void USCI_B_I2C_masterSendSingleByte(uint16_t baseAddress,
512 extern bool USCI_B_I2C_masterSendSingleByteWithTimeout(uint16_t baseAddress,
533 extern void USCI_B_I2C_masterSendMultiByteStart(uint16_t baseAddress,
551 extern bool USCI_B_I2C_masterSendMultiByteStartWithTimeout(uint16_t baseAddress,
571 extern void USCI_B_I2C_masterSendMultiByteNext(uint16_t baseAddress,
591 extern bool USCI_B_I2C_masterSendMultiByteNextWithTimeout(uint16_t baseAddress,
612 extern void USCI_B_I2C_masterSendMultiByteFinish(uint16_t baseAddress,
633 extern bool USCI_B_I2C_masterSendMultiByteFinishWithTimeout(uint16_t baseAddress,
653 extern void USCI_B_I2C_masterSendMultiByteStop(uint16_t baseAddress);
672 extern bool USCI_B_I2C_masterSendMultiByteStopWithTimeout(uint16_t baseAddress,
689 extern void USCI_B_I2C_masterReceiveMultiByteStart(uint16_t baseAddress);
703 extern uint8_t USCI_B_I2C_masterReceiveMultiByteNext(uint16_t baseAddress);
720 extern uint8_t USCI_B_I2C_masterReceiveMultiByteFinish(uint16_t baseAddress);
740 extern bool USCI_B_I2C_masterReceiveMultiByteFinishWithTimeout(uint16_t baseAddress,
758 extern void USCI_B_I2C_masterReceiveMultiByteStop(uint16_t baseAddress);
775 extern void USCI_B_I2C_masterReceiveSingleStart(uint16_t baseAddress);
793 extern bool USCI_B_I2C_masterReceiveSingleStartWithTimeout(uint16_t baseAddress,
808 extern uint8_t USCI_B_I2C_masterReceiveSingle(uint16_t baseAddress);
822 extern uint32_t USCI_B_I2C_getReceiveBufferAddressForDMA(uint16_t baseAddress);
836 extern uint32_t USCI_B_I2C_getTransmitBufferAddressForDMA(uint16_t baseAddress);
MPU_initThreeSegmentsParam param